package com.example.springboot3demo.mq.dto;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * 方法调用信息传输对象
 * 用于封装方法调用的相关信息，通过RabbitMQ在实例间传输
 *
 * @author Your Name
 * @date 2024-01-01
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class MethodInvocationDto implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 类名（全限定名）
     */
    private String className;

    /**
     * 方法名
     */
    private String methodName;

    /**
     * 参数类型数组
     */
    private String[] parameterTypes;

    /**
     * 参数值数组
     */
    private Object[] parameterValues;

    /**
     * 调用时间戳
     */
    private Long timestamp;

    /**
     * 同步组名
     */
    private String group;

}